wayland: Fix the map_virtual_modifiers implementation
authorMatthias Clasen <mclasen@redhat.com>
Sun, 17 Apr 2016 03:16:12 +0000 (23:16 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 17 Apr 2016 03:16:12 +0000 (23:16 -0400)
We were not stripping real modifiers out, and thus always
thought there's a conflict when the passed in modifiers
included any real modifiers.

gdk/wayland/gdkkeys-wayland.c

index d73199f42cd41c5f72fa1b635076482e77318547..eee2907649e193e83b8a58b7da9231028c650a48 100644 (file)
@@ -420,7 +420,7 @@ gdk_wayland_keymap_map_virtual_modifiers (GdkKeymap       *keymap,
   mods = get_xkb_modifiers (xkb_keymap, *state);
 
   xkb_state = xkb_state_new (xkb_keymap);
-  xkb_state_update_mask (xkb_state, mods, 0, 0, 0, 0, 0);
+  xkb_state_update_mask (xkb_state, mods & ~0xff, 0, 0, 0, 0, 0);
   mapped = xkb_state_serialize_mods (xkb_state, XKB_STATE_MODS_EFFECTIVE);
   if ((mapped & mods & 0xff) != 0)
     ret = FALSE;